const db = require('../../db')

// 发布二手商品信息
// 1、添加商品
// 2、用户发布的二手商品数量+1
exports.addTrade = (req,res)=>{
    // console.log(req.body)
    const tradeInfo = {
        // title,content,tel,price,photo,types(0-7)
        ...req.body,
        author:req.user.username,
        aut_id:req.user.id,
        pubdata:new Date(),   
        commentNum:0,
        view:0,
        likes:0,
        isdelete:0,
        isdown:0,
        
    }
    var str = "insert into trade set ?"
    db.query(str,tradeInfo,(err,results)=>{
        if(err) return res.cc(err)
        if(results.affectedRows != 1) return res.cc("发布错误，稍后请重新尝试")
        // 用户数量发布+1
        str = "select trade_num from user where id =?"
        db.query(str,req.user.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.length != 1) return res.cc("发布错误，稍后请重新尝试")
            var dataString = JSON.stringify(results);
            results = JSON.parse(dataString);
            const trade_num =  results[0].trade_num +1

            str = "update user set trade_num = ? where id = ?"
            db.query(str,[trade_num,req.user.id],(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("发布错误，稍后请重新尝试")
                res.cc("发布成功",0)
            })
        })
        // res.cc("发表成功",0)
    })
}

// // 删除二手商品信息
// // 1、删除商品
// // 2、用户发布的二手商品数量-1
// exports.delTrade = (req,res)=>{
//     var str = "delete from trade where id = ?"
//     db.query(str,req.body.id,(err,results)=>{
//         if(err) return res.cc(err)
//         if(results.affectedRows != 1) return res.cc("删除成功，但服务器出了一点错误")
//         // 获取用户发布的二手商品数量
//         str = "select trade_num from user where id = ?"
//         db.query(str,req.user.id,(err,results)=>{
//             if(err) return res.cc(err)
//             var dataString = JSON.stringify(results);
//             results = JSON.parse(dataString);
//             const trade_num = results[0].trade_num -1
            
//             str = "update user set trade_num = ? where id = ? "
//             db.query(str,[trade_num,req.user.id],(err,results)=>{
//                 if(err) return res.cc(err)
//                 if(results.affectedRows != 1) return res.cc("删除成功，但服务器出了一点错误")
//                 res.cc("删除成功",0)
//             })
//         })
        
       
//     })
// }
 
// 二手商品的假删除（用户的connect_num-1）用户只能删除自己发布的

exports.delTrade = (req,res)=>{
    // 根据传入的文章id号查找文章
    var str = "select * from trade where id = ?"
   
    db.query(str,req.body.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("数据库错误1,请重新删除")
      
        if(req.user.id == results[0].aut_id){
            str = "update trade set isdelete = 1 where id = ?"
            db.query(str,req.body.id,(err,results)=>{
                if(err) return res.cc(err)
               
                if(results.affectedRows != 1) return res.cc("数据库错误2,请重新删除")
                // 获取用户的trade_num
                str = "select  trade_num from user where id = ?"
                db.query(str,req.user.id,(err,results)=>{
                    if(err) return res.cc(err)
                    if(results.length != 1)  return res.cc("数据库错误3,请重新发布")
                    var dataString = JSON.stringify(results);
                    results = JSON.parse(dataString);
                    var trade_num = results[0].trade_num
                    if(trade_num <= 0){
                        trade_num = 0
                    }else{
                        trade_num -= 1
                    }
                    // 更新用户的trade_num
                    str = "update user set trade_num = ? where id =?"
                    db.query(str,[trade_num,req.user.id],(err,results)=>{
                        if(err) return res.cc(err)
                        if(results.affectedRows != 1) return res.cc("数据库错误4,用户发布量增添失败")
                        res.cc("删除成功",0)
                    })
                })
              
            })
        }else{
            res.cc("该问答二手信息不是您发布的哦")
        }
    })    
}

// 二手商品的删除找回   用户只能找回自己发布的

exports.backDelTrade = (req,res)=>{
    // 根据传入的文章id号查找二手商品
    var str = "select * from trade where id = ?"
   
    db.query(str,req.body.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("数据库错误,请重新查询")
      
        if(req.user.id == results[0].aut_id){
            str = "update trade set isdelete = 0 where id = ?"
            db.query(str,req.body.id,(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("数据库错误,请重新查询")
                // 获取用户的connect_num
                str = "select  trade_num from user where id = ?"
                db.query(str,req.user.id,(err,results)=>{
                    if(err) return res.cc(err)
                    if(results.length != 1)  return res.cc("数据库错误,请重新发布")
                    var dataString = JSON.stringify(results);
                    results = JSON.parse(dataString);
                    var trade_num = results[0].trade_num
                    
                        trade_num += 1
                    
                    // 更新用户的connect_num
                    str = "update user set trade_num = ? where id =?"
                    db.query(str,[trade_num,req.user.id],(err,results)=>{
                        if(err) return res.cc(err)
                        if(results.affectedRows != 1) return res.cc("数据库错误,用户发布量增添失败")
                        res.cc("找回成功",0)
                    })
                })
               
              
            })
        }else{
            res.cc("该二手信息文章不是您发布的哦")
        }
    })
}

// 二手商品真删除
exports.rDelTrade = (req,res)=>{
    // 根据传入的文章id号查找文章
    var str = "select * from trade where id = ?"

    db.query(str,req.body.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("数据库错误1,请重新删除")
      
        if(req.user.id == results[0].aut_id){
            str = "delete from trade where id = ?"
            db.query(str,req.body.id,(err,results)=>{
                if(err) return res.cc(err)
               
                if(results.affectedRows != 1) return res.cc("数据库错误2,请重新删除")
                // 获取用户的trade_num
                str = "select  trade_num from user where id = ?"
                res.cc("删除成功",0)
              
            })
        }else{
            res.cc("该问答二手信息不是您发布的哦")
        }
    })
}

// 二手商品的下架   用户只能下架自己发布的

exports.downTrade = (req,res)=>{
    // 根据传入的文章id号查找文章
    var str = "select * from trade where id = ?"
   
    db.query(str,req.body.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("数据库错误,请重新下架")
      
        if(req.user.id == results[0].aut_id){
            str = "update  trade set isdown = 1 where id = ?"
            db.query(str,req.body.id,(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("数据库错误,请重新下架")
                res.cc("下架成功",0)
              
            })
        }else{
            res.cc("该二手信息不是您发布的哦")
        }
    })
}

// 二手商品的下架找回   用户只能找回自己发布的

exports.backDownTrade = (req,res)=>{
    // 根据传入的文章id号查找文章
    var str = "select * from trade where id = ?"
 
    db.query(str,req.body.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("数据库错误,请重新查询")
      
        if(req.user.id == results[0].aut_id){
            str = "update trade set isdown = 0 where id = ?"
            db.query(str,req.body.id,(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("数据库错误,请重新查询")
                res.cc("恢复成功",0)
              
            })
        }else{
            res.cc("该二手信息文章不是您发布的哦")
        }
    })
}

// 查询下架的二手商品列表
exports.getDownTrade = (req,res)=>{
    var str = "select t.* from trade t join user u on t.isdelete = 1 where u.id = ? and t.aut_id =?"
    db.query(str,[req.user.id,req.user.id],(err,results)=>{
        if(err) return res.cc(err)
        res.send({
            status:0,
            message:"获取成功",
            data:results
        })
      
    })
}

// 查询二手商品的信息详情
exports.getDetailTrade = (req,res)=>{
    var str = "select t.* from trade t join user u on  t.id = ? where u.id = ? "
    db.query(str,[req.query.id,req.user.id],(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("查询失败，稍后请重新尝试")
        res.send({
            status:0,
            message:"查询成功",
            data:results
        })
    })
}

// 删除下架的二手商品信息（传入的二手id只能为自己下架的商品ID）  
exports.delDownTrade = (req,res)=>{
    const id = req.body.id
    var  str = "select * from trade where isdelete = 1 and id = ?"
    db.query(str,id,(err,results)=>{
        if(err) return res.cc(err)
        // const aut_id = ? null:results[0].aut_id
       
        if(req.user.id == aut_id ){
            str = "delete from trade where isdelete = 1 and id = ?"
            db.query(str,req.body.id,(err,results)=>{
                if(err) return res.cc(err)
                if(results.affectedRows != 1) return res.cc("删除失败，稍后请重新尝试")
              
                res.cc("删除成功",0)
            })
        }else{
            res.cc("此下架商品不是您发布的")
        }
    })
     
}

// // 上传图片
// exports.changePhoto=(req,res)=>{
        
// }

// 收藏二手商品   
// 1、获取当前商品收藏数
// 2、商品收藏数+1
// 3、获取用户收藏数
// 4、用户收藏数+1

exports.likeTrade = (req,res)=>{
    // 先获取当前收藏量 
    const id = req.query.id
    var str =  "select likes from trade where isdelete = 0 and id = ?"
    db.query(str,id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length != 1) return res.cc("数据库错误，稍后请重新尝试")
        var dataString = JSON.stringify(results);
        results = JSON.parse(dataString);
        var likes = results[0].likes
        // 详情页的收藏数加1
        likes +=1
        str =  "update trade set likes = ? where id = ?"
        db.query(str,[likes,id],(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows != 1) return res.cc("数据库错误，稍后请重新尝试")
            // 获取用户自己收藏的上线的商品数量
            str =  "select trade_likes from user where isdelete = 0 and id = ?"
            db.query(str,req.user.id,(err,results)=>{
                if(err) return res.cc(err)
                dataString = JSON.stringify(results);
                results = JSON.parse(dataString);
                var trade_likes = results[0].trade_likes
                // 用户收藏的商品数量加1
                trade_likes+=1
                // 更新用户收藏的数量（用户id）
                str = "update user set trade_likes =? where  id =?"
                db.query(str,[trade_likes,req.user.id],(err,results)=>{
                        if(err) return res.cc(err)
                        if(results.affectedRows != 1) return res.cc("数据库错误，稍后请重新尝试")
                        res.cc("点赞成功",0)
                    })
            })
        })
    })
}

// 取消收藏二手商品
// 1、获取当前商品收藏数
// 2、商品收藏数-1
// 3、获取用户收藏数
// 4、用户收藏数-1
exports.unLikeTrade = (req,res)=>{
    // 先获取当前点赞量 
      // 先获取当前收藏量 
      const id = req.query.id
      var str =  "select likes from trade where isdelete = 0 and id = ? "
      db.query(str,id,(err,results)=>{
          if(err) return res.cc(err)
          if(results.length != 1) return res.cc("数据库错误，稍后请重新尝试")
          var dataString = JSON.stringify(results);
          results = JSON.parse(dataString);
          var likes = results[0].likes
          // 详情页的收藏数加1
          likes -=1
          str =  "update trade set likes = ? where id = ?"
          db.query(str,[likes,id],(err,results)=>{
              if(err) return res.cc(err)
              if(results.affectedRows != 1) return res.cc("数据库错误，稍后请重新尝试")
              // 获取用户自己收藏的上线的商品数量
              str =  "select trade_likes from user where isdelete = 0 and id = ?"
              db.query(str,req.user.id,(err,results)=>{
                  if(err) return res.cc(err)
                  dataString = JSON.stringify(results);
                  results = JSON.parse(dataString);
                  var trade_likes = results[0].trade_likes
                  // 用户收藏的商品数量加1
                  if(trade_likes <= 0){
                    trade_likes = 0
                  }else{
                    trade_likes-=1
                  }
                  // 更新用户收藏的数量（用户id）
                  str = "update user set trade_likes =? where  id =?"
                  db.query(str,[trade_likes,req.user.id],(err,results)=>{
                          if(err) return res.cc(err)
                          if(results.affectedRows != 1) return res.cc("数据库错误，稍后请重新尝试")
                          res.cc("取消点赞成功",0)
                      })
              })
          })
      })
}